#ifndef HASH_MAP_H
#define HASH_MAP_H
#include <header.h>
#include <stdint.h>
#include <stdbool.h>

// 定义键值对结构
typedef struct KeyValue {
    int key;
    int value;
    struct KeyValue* next;
} KeyValue;

// 定义哈希表结构
typedef struct {
    KeyValue** buckets;
    int capacity;
    int size;
} HashMap;

// 创建哈希表
HashMap* create_hashmap(int capacity);

// 销毁哈希表
void destroy_hashmap(HashMap* map);

// 插入键值对
bool hashmap_put(HashMap* map, int key, int value);

// 查找键值对
bool hashmap_get(HashMap* map, int key, int* value);

// 删除键值对
bool hashmap_remove(HashMap* map, int key);

// 获取哈希表大小
int hashmap_size(HashMap* map);
#endif // !HASH_MAP_H
